from . import query_model


class QueryTypeEnum:
    simple: str = "simple"  # 简单问题：24年北京收入
    rank: str = "rank"  # 排名问题：24年收入TOP3的城市
    comparison: str = "comparison"  # 比较问题：24年收入超过1万的城市


question_route_prompt = """在本场景中，用户意图主要分为两种：data和normal，其中data为数据查询类的问题，normal为其他问题。
请注意：只需要输出data或normal这两个字符串，不要添加额外内容！

<Example>
input: 2024年9月产互KPI完成情况
output: data

input: 介绍一下产互KPI
output: normal

input: 2024年9月业绩指标中完成率最差的产品是哪个？
output: data

input: 你是谁
output: normal

input: 24年8月专业指标中月度完成率未完成的指标是哪些？
output: data

input: 西游记有多少章节
output: noraml


input: 2024年9月AAA产品收入情况
output: data
"""


info_extract_prompt = """你是一个关键信息提取专家，用户正在问你公司经营数据问题，你需要将问题中的关键信息提取出来，生成一个json对象。请注意：只输出一个格式规范的json对象!

<Instruction>
1、提取出问题中的时间，用年份和月份来表示。
2、判断两种特殊关键词是否在问题中出现以区分问题的类别，以下仅给出一部分关键词作为示例，请结合实际场景具体判断：
- rank（排名类关键词）：排名、前几、后几、top、bottom、最差、最好
- comparison（比较类关键词）：未达标、已达标、未完成、已完成、大于、等于、小于、多于
3、只输出一个json，首尾使用花括号开头和结尾，不要输出多于解释。json格式必须正确，每一个对象都要用花括号括起来。

<Example>
input:今年收入大于10万的LV3产品有哪些
output:{"year": [2024], "month": None, "rank": False, "comparison": True}

input:24年9月专业指标收入
output:{"year": [2024], "month": [9], "rank": False, "comparison": False}

input:23年各省AAA收入排名
output:{"year": [2024], "month": None, "rank": True, "comparison": False}

input:2024年1-3月KPI预算完成率
output:{"year": [2024], "month": [1, 3], "rank": False, "comparison": False}

input:24年Q2CCC预算完成率最高的10个市
output:{"year": [2024], "month": [4, 6], "rank": True, "comparison": False}
"""


dsl_generate_prompt = """<Role>
你是一个数据库专家，你的任务是将输入的问题及其解释转化为一个json，该json包含了生成一个完整SQL所需要的信息。

<Rule>
1、target_field和target_name用于生成SQL的select语句，是该问题结果中需要展示的数据库字段；
2、group_field和group_name用于生成SQL的group_by语句，是该问题分组的依据，非分组问题可以不要；
3、conditions用于生成SQL的where语句，包含该问题中的所有条件
4、使用in和nin表示字段的取值

<Constraints>
提取的关键词不要带有空格字符。

<Instructions>
只输出一个json，首尾使用花括号开头和结尾，不要输出多于解释。json格式必须正确，每一个对象都要用花括号括起来。重复信息在json中只输出一次。

<Examples>
{{example}}

<Question>
{{query}}
"""



